During normal operation of an industrial robot, the robot is stiff in all directions and orientations. A problem with operating such a robot is that it has no ability to absorb a strong force applied from the outside. For example, in a case when the robot aims to work in operations to receive a force applied from an external machine. In order to overcome this problem many robots have been provided with the possibility to switch the robot into a compliance control mode. In the compliance control mode the gains of the position loop and the speed loop are significantly reduced such that the stiffness of the manipulator is reduced. This allows the robot to effectively perform like a mechanical spring when encountering resistance during operation, thereby enabling the robot to deviate from the programmed path and thus cope with tolerances in fixtures and tools.
U.S. Pat. No. 5,994,864 discloses an industrial robot including a robot controller which performs operations while switching between position control and compliance control. When the robot is switched to the position control the gain of the position loop and the speed loop is set at a large value in order to make the manipulator stiff. When the robot controller is set to the compliance control, the position gain and the speed gain are lowered in accordance with the degree of setting flexibility. When the robot controller is switched to the compliance control the manipulator will act like a spring when colliding with an obstacle, which means that the manipulator, after it has been moved due to the collision, will strive to move back to it original position.
There also exist a variant of the compliance control in which the manipulator is compliant, but does not act like a spring. With this function it is possible to make the robot with its tool “floating” in any arbitrary direction in the Cartesian space. When the robot has been moved, for example, due to a collision with another moving object, the manipulator will stay in its new position and will not strive to move back to its original position. Different manufactures have different names for compliance control mode, such as soft float, soft move, soft servo, soft absorber, and servo float. A typical use is tending die-cast or injection moulding machines, where the robot is pushed out by the machine as the part is ejected, enabling the robot to follow the machine and thus reducing cycle time. Further examples are placing/picking a workpiece in a tool, placing a molded or cast part in a fixture, and tool exchanging on peripheral machines. The switching to the compliance control is made in the robot program.
Industrial robots are highly flexible devices used in many different industrial applications. A robot program includes a sequence of program instructions where each instruction tells the robot controller what to do and how to do it. Robots are programmed to follow a path including a plurality of target points. The robot program includes the positions of the target points. The programming of robots is a time consuming process and the conventional methods of using the robot during the programming and teaching process ties up the production equipment and delays production start. In order to save time and speed production start, it is highly desirable to program a robot off-line. When the off-line programming is completed, the program can be transferred to the real robot.
However, a robot program prepared by an off-line programming system cannot directly be used for operating a robot in a real robot cell, because the positional relationship between the robot and the work object in the off-line environment may deviate from the actual positional relationship between the robot and the object in the real robot cell. Accordingly, positions of the off-line programmed target points have to be adjusted before using the program. Today, adjustment of a target point is done by moving the manipulator to the next programmed target point in accordance with the instructions in the robot program and then to manually jog the manipulator so that the tool comes into contact with the work object at the target point. The position of the manipulator and the tool is stored, and the program instructions for the movements of the manipulator and the tool at the target point are adjusted based on the stored positions for the manipulator and the tool. This procedure is repeated for each target point on the work object. A disadvantage with the adjustment of the positions of the target points is that it is time consuming.